<#assign currentTime = .now>
package ${templateTable.packageName}.${templateTable.javaTableName[0]?lower_case+templateTable.javaTableName[1..]}.infrastructure.repository.convert;

import ${templateTable.packageName}.${templateTable.javaTableName[0]?lower_case+templateTable.javaTableName[1..]}.application.dto.${templateTable.javaTableName}DTO;
import ${templateTable.packageName}.${templateTable.javaTableName[0]?lower_case+templateTable.javaTableName[1..]}.domain.entity.${templateTable.javaTableName}Entity;
import ${templateTable.packageName}.${templateTable.javaTableName[0]?lower_case+templateTable.javaTableName[1..]}.infrastructure.repository.dataobject.${templateTable.javaTableName}DO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

 /**
  * This file is auto-generated by nebula-framework-generator.
  * The auto-generation plugin was developed using IntelliJ IDEA Community Edition.
  * Thanks to JetBrains for their outstanding contributions to the developer community.
  * <p>
  * The code generated by this tool is owned by the user of the tool.
  * The tool itself is copyrighted by <a href="${templateTable.copyright}">${templateTable.copyright}</a>.
  *
  * @author <a href="${templateTable.copyright}">${templateTable.copyright}</a>
  * @version ${templateTable.version}
  * @since ${currentTime?string("yyyy-MM-dd HH:mm:ss")}
  */

@Mapper
public interface ${templateTable.javaTableName}Converter {

    ${templateTable.javaTableName}Converter INSTANCE = Mappers.getMapper(${templateTable.javaTableName}Converter.class);

    ${templateTable.javaTableName}DO covertDO(${templateTable.javaTableName}Entity ${templateTable.javaTableName[0]?lower_case+templateTable.javaTableName[1..]}Entity);

    @Mapping(target = "startCreateTime", ignore = true)
    @Mapping(target = "startUpdateTime", ignore = true)
    @Mapping(target = "endCreateTime", ignore = true)
    @Mapping(target = "endUpdateTime", ignore = true)
    ${templateTable.javaTableName}DTO covertDTO(${templateTable.javaTableName}DO ${templateTable.javaTableName[0]?lower_case+templateTable.javaTableName[1..]}DO);

    @Mapping(target = "startCreateTime", ignore = true)
    @Mapping(target = "startUpdateTime", ignore = true)
    @Mapping(target = "endCreateTime", ignore = true)
    @Mapping(target = "endUpdateTime", ignore = true)
    List<${templateTable.javaTableName}DTO> covertDTOS(List<${templateTable.javaTableName}DO> ${templateTable.javaTableName[0]?lower_case+templateTable.javaTableName[1..]}DOS);
}